package com.mathdroid.model.enums;

/**
 * Each talent tree gets an enumeration and name.
 */
public enum ETalentTree {
	
	/**
	 * Sentinel.
	 */
	ASSAULT_SPECIALIST_S("Assault Specialist", "bg_assault_specialist_s"), 
	/**
	 * Sentinel.
	 */
	COMBAT_MEDIC_S("Combat Medic", "bg_combat_medic_s"), 
	/**
	 * Sentinel.
	 */
	GUNNERY_S("Gunnery", "bg_gunnery_s"), 
	
	/**
	 * Vanguard.
	 */
	ASSAULT_SPECIALIST_V("Assault Specialist", "bg_aussault_specialist_v"), 
	/**
	 * Vanguard.
	 */
	SHIELD_SPECIALIST_V("Shield Specialist", "bg_shield_specialist_v"), 
	/**
	 * Vanguard.
	 */
	TACTICS_V("Tactics", "bg_tactics_v"),
	
	/**
	 * Commando.
	 */
	ASSAULT_SPECIALIST_C("Assault Specialist", "bg_assault_specialist_c"), 
	/**
	 * Commando.
	 */
	COMBAT_MEDIC_C("Combat Medic", "bg_combat_medic_c"), 
	/**
	 * Commando.
	 */
	GUNNERY_C("Gunnery", "bg_gunnery_c"), 
	
	/**
	 * Gunslinger.
	 */
	DIRTY_FIGHTING_G("Dirty Fighting", "bg_dirty_fighting_g"), 
	/**
	 * Gunslinger.
	 */
	SABOTEUR_G("Saboteur", "bg_sabouteur_g"), 
	/**
	 * Gunslinger.
	 */
	SHARPSHOOTER_G("Sharpshooter", "bg_sharpshooter_g"), 
	
	/**
	 * Scoundrel.
	 */
	DIRTY_FIGHTING_S("Dirty Fighting", "bg_dirty_fighting_s"), 
	/**
	 * Scoundrel.
	 */
	SAWBONES_S("Sawbones", "bg_sawbones_s"),
	/**
	 * Scoundrel.
	 */
	SCRAPPER_S("Scrapper", "bg_scrapper_s"), 
	
	/**
	 * Guardian.
	 */
	FOCUS_G("Focus", "bg_focus_g"), 
	/**
	 * Guardian.
	 */
	VIGILANCE_G("Vigilance", "bg_vigilance_g"), 
	/**
	 * Guardian.
	 */
	DEFENSE_G("Defense", "bg_defense_g"), 
	
	/**
	 * Sage.
	 */
	BALANCE_S("Balance", "bg_balance_s"), 
	/**
	 * Sage.
	 */
	SEER_S("Seer", "bg_seer_s"), 
	/**
	 * Sage.
	 */
	TELEKINETICS_S("Telekinetics", "bg_telekinetics_s"), 
	/**
	 * Shadow.
	 */
	BALANCE_SHADOW("Balance", "bg_balance_shadow"), 
	/**
	 * Shadow.
	 */
	KINETIC_COMBAT_S("Kinetic Combat", "bg_kinetic_combat_s"), 
	/**
	 * Shadow.
	 */
	INFILTRATION_S("Infiltration", "bg_infiltration_s"), 
	
	/**
	 * Powertech.
	 */
	FIREBUG_P("Firebug", "bg_firebug_p"), 
	/**
	 * Powertech.
	 */
	ADVANCED_PROTOTYPE_P("Advanced Prototype", "bg_advanced_prototype_p"), 
	/**
	 * Powertech.
	 */
	SHIELD_TECH_P("Shield Tech", "bg_shield_tech_p"), 
	
	/**
	 * Mercenary.
	 */
	FIREBUG_M("Firebug", "bg_firebug_m"), 
	/**
	 * Mercenary.
	 */
	ARSENAL_M("Arsenal", "bg_arsenal_m"), 
	/**
	 * Mercenary.
	 */
	BODYGUARD_M("Bodyguard", "bg_bodyguard_m"), 
	
	/**
	 * Juggernaut.
	 */
	IMMORTAL_J("Immortal", "bg_immortal_j"), 
	/**
	 * Juggernaut.
	 */
	VENGEANCE_J("Vengeance", "bg_vengeance_j"), 
	/**
	 * Juggernaut.
	 */
	RAGE_J("Rage", "bg_rage_j"), 
	
	/**
	 * Marauder.
	 */
	ANNIHILATION_M("Annihilation", "bg_annihilation_m"), 
	/**
	 * Marauder.
	 */
	CARNAGE_M("Carnage", "bg_carnage_m"), 
	/**
	 * Marauder.
	 */
	RAGE_M("Rage", "bg_rage_m"), 
	
	/**
	 * Operative.
	 */
	LETHALITY_O("Lethality", "bg_lethality_o"), 
	/**
	 * Operative.
	 */
	MEDIC_O("Medic", "bg_medic_o"), 
	/**
	 * Operative.
	 */
	CONCEALMENT_O("Concealment", "bg_concealment_o"), 
	
	/**
	 * Sniper.
	 */
	LETHALITY_S("Lethality", "bg_lethality_s"), 
	/**
	 * Sniper.
	 */
	ENGINEERING_S("Engineering", "bg_engineering_s"), 
	/**
	 * Sniper.
	 */
	MARKSMAN_S("Marksman", "bg_marksman_s"), 
	
	/**
	 * Sorcerer.
	 */
	CORRUPTION_S("Corruption", "bg_corruption_s"), 
	/**
	 * Sorcerer.
	 */
	LIGHTNING_S("Lightning", "bg_lighting_s"), 
	/**
	 * Sorcerer.
	 */
	MADNESS_S("Madness", "bg_madness_s"), 
	
	/**
	 * Assassin.
	 */
	DARKNESS_A("Darkness", "bg_darkness_a"), 
	/**
	 * Assassin.
	 */
	DECEPTION_A("Deception", "bg_deception_a"), 
	/**
	 * Assassin.
	 */
	MADNESS_A("Madness", "bg_madness_a");
	
	/**
	 * String representation of this name.
	 */
	private String name = null;
	
	/**
	 * The filename of the talent tree background.
	 */
	private String fileName = null;
	
	/**
	 * Create a talent tree enumeration.
	 * @param n Tree name.
	 * @param f Filename of background.
	 */
	private ETalentTree(final String n, final String f) {
		this.name = n;
		this.fileName = f;
	}
	
	@Override	
	public String toString() {
		return this.name;
	}
	
	/**
	 * Get the filename.
	 * @return Filename.
	 */
	public String getFileName() {
		return this.fileName + ".png";
	}
}
